package com.wisdytech.linkdcs.partLife.service;

import java.io.IOException;
import java.util.List;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.linkdcs.equipment.model.EquipModel;
import com.wisdytech.linkdcs.partLife.model.Part;

/**
 * <p>
 *  备件信息服务类
 * </p>
 *
 * @author chenbin
 * @since 2018-06-05
 */
public interface IPartService{
    /**
     * 分页条件查询备件列表信息
     * @param partCode 备件编码
     * @param partName 备件名称
     * @param modelCode 设备型号
     * @param partType 备件类型
     * @param quickWearFlag 易损件
     * @param keyPartFlag 关键备件
     * @param filter 分页参数
     * @return 备件管理列表信息
     */
	PageInfo<Part> listPartByFilter(String partCode, String partName, String modelCode, String partType,
			String quickWearFlag, String keyPartFlag,String partSpecification, Filter filter);
    /**
     * 保存备件信息
     * @param part 备件对象
     * @param session 
     * @return 保存结果集
     */
	void addPart(Part part, String loginName);
    /**
     * 保存修改备件信息
     * @param part 备件对象
     * @param session 
     * @return 保存结果集
     */
	void updatePart(Part part, String loginName);
    /**
     * 通过id批量删除备件信息
     * @param id 主键id
     * @return 删除结果集
     */
	void delPartById(String pkId);
    /**
     * <p>Description:查询备件信息</p> 
     * @param pkId 备件id
     * @return 备件信息
     * @throws IOException 
     */
	Part getPartById(String pkId);
    /**
     * 通过备件编号查询对应的备件信息
     * @param partCode 备件编码
     * @return 备件信息对象
     */
	Part getPartByPartCode(String partCode);
    /**
     * <p>Description:查询关键备件编号信息列表</p> 
     * @param search 模糊查询
     * @return 关键备件编号信息列表集合
     */
	List<Part> listKeyPartAll(String search);
    /**
     * <p>Description:查询与设备型号关联的专用件和未和设备关联的通用件信息列表</p> 
     * @param search 模糊查询
     * @param modelCode 设备型号
     * @param filter 分页查询
     * @return 查询与设备型号关联的专用件和未和设备关联的通用件信息列表
     */
	List<Part> listModelPartAll(String search, String modelCode, Filter filter);

	List<Part> listlPartAllByPartCode(String search, Filter filter);

}
